package fr.vvins.core.biz.community;

import java.util.List;
import java.util.Map;
import java.util.Set;

import fr.vvins.core.biz.user.dto.UserCommentDto;
import fr.vvins.core.biz.user.dto.UserLogDto;
import fr.vvins.core.biz.user.dto.UserRatingDtoInfo;
import fr.vvins.core.common.TechnicalException;

public interface CommunityManager {

	public Set<UserLogDto> getLogsByProduct(Integer id) throws CommunityException, TechnicalException;
	
	public Set<UserLogDto> getLogsByVigneron(Integer id) throws CommunityException, TechnicalException;
	
	public Set<UserLogDto> getLogsByKey(String key) throws CommunityException, TechnicalException;

	public Set<UserLogDto> getLogsByContent(Integer contentId) throws CommunityException, TechnicalException;

	public Set<UserLogDto> getLogsByUser(Integer userId) throws CommunityException, TechnicalException;
	
	public Map<Integer,Set<UserLogDto>> getLogsByVigneron(Integer id, List<Integer> action) throws CommunityException, TechnicalException;
	
	public Map<Integer,Set<UserLogDto>> getLogsByProduct(Integer id, List<Integer> action) throws CommunityException, TechnicalException;
	
	public Map<Integer,Set<UserLogDto>> getLogsByKey(String key, List<Integer> action) throws CommunityException, TechnicalException;

	public Map<Integer,Set<UserLogDto>> getLogsByContent(Integer contentId, List<Integer> action) throws CommunityException, TechnicalException;

	public Set<UserLogDto> getLogsByUser(Integer userId, List<Integer> action) throws CommunityException, TechnicalException;

	public Set <UserCommentDto> getUserCommentByProduct(Integer id) throws CommunityException, TechnicalException;
 	
	public Set <UserCommentDto> getUserCommentByVigneron(Integer id) throws CommunityException, TechnicalException;
 	
	public Set <UserCommentDto> getUserCommentByContent(Integer contentId) throws CommunityException, TechnicalException;
 	
	public Set <UserCommentDto> getUserCommentByKey(String key) throws CommunityException, TechnicalException;
 	
	public Set <UserCommentDto> getUserCommentByUser(Integer user) throws CommunityException, TechnicalException;
 	
	public Set <UserRatingDtoInfo> getUserRatingByVigneron(Integer id) throws CommunityException, TechnicalException;
 	
	public Set <UserRatingDtoInfo> getUserRatingByProduct(Integer id) throws CommunityException, TechnicalException;
 	
	public Set <UserRatingDtoInfo> getUserRatingByContent(Integer contentId) throws CommunityException, TechnicalException;
 	
	public Set <UserRatingDtoInfo> getUserRatingByKey(String key) throws CommunityException, TechnicalException;
 	
	public Set <UserRatingDtoInfo> getUserRatingByUser(Integer user) throws CommunityException, TechnicalException;

}
